// Include Files
#include "Definitions.h"

/////////////////////////////////////////////////////////////////////////////////////
// Include Files

#include "IE.h"
#include "Game.h"
#include "Scene.h"
#include "Window.h"
#include "Camera.h"
#include "Object.h"
#include "Panel.h"

/////////////////////////////////////////////////////////////////////////////////////
// IE Implementation

IE::CGame *IE::CreateGame()
{
	return new CGame();
}

void IE::DestroyGame( IE::CGame *_pGame )
{
	delete _pGame;
}

IE::CScene *IE::CreateScene()
{
	return new CScene();
}

void IE::DestroyScene( IE::CScene *_pScene )
{
	delete _pScene;
}

IE::CWindow *IE::CreateGameWindow()
{
	return new CWindow();
}

void IE::DestroyGameWindow( IE::CWindow *_pWindow )
{
	delete _pWindow;
}

IE::CCamera *IE::CreateCamera()
{
	return new CCamera();
}

void IE::DestroyCamera( IE::CCamera *_pCamera )
{
	delete _pCamera;
}

IE::CObject *IE::CreateObject()
{
	return new CObject();
}

void IE::DestroyObject( IE::CObject *_pObject )
{
	delete _pObject;
}

IE::CPanel *IE::CreatePanel()
{
	return new CPanel();
}

void IE::DestroyPanel( IE::CPanel *_pPanel )
{
	delete _pPanel;
}


//#include "Main.h"
//#include "Game.h"
//#include "Object.h"
//
//// managers
//#include "Managers\TextureManager.h"
//#include "Managers\ShaderManager.h"
//#include "Managers\MeshManager.h"
//
//// systems
//#include "Render\RenderSystem.h"
//#include "Script\ScriptSystem.h"
//
//void IE::Initialize(HWND _hWnd)
//{
//	// create the game
//	CGame::CreateInstance();
//
//	// create managers
//	CTextureManager::CreateInstance();
//	CShaderManager::CreateInstance();
//	CMeshManager::CreateInstance();
//
//	// create systems
//	CRenderer::CreateInstance();
//	CScriptSystem::CreateInstance();
//
//	// start the game
//	CSingleton<CGame> pGame;
//	pGame->Initialize(_hWnd);
//}
//
//void IE::Shutdown()
//{
//	// shut down the game
//	CSingleton<CGame> pGame;
//	pGame->Shutdown();
//
//	// destroy systems
//	CScriptSystem::DestroyInstance();
//	CRenderer::DestroyInstance();
//
//	// destroy managers
//	CMeshManager::DestroyInstance();
//	CShaderManager::DestroyInstance();
//	CTextureManager::DestroyInstance();
//
//	// destroy the game
//	CGame::DestroyInstance();
//}
//
//IE::CScene *IE::CreateScene()
//{
//	return new IE::CScene();
//}
//
//IE::CObject *IE::CreateObject( IE::CScene *_pScene )
//{
//	return new IE::CObject(_pScene);
//}
